/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package stub;

import java.util.Stack;
import java.util.Vector;

/**
 *
 * @author nacho
 */
public class Tabla {

    Stack<Integer> pila;
    Vector<OpenFile> tabla;

    public Tabla() {
        pila = new Stack<Integer>();
        tabla = new Vector<OpenFile>();
    }

    protected int add(OpenFile archivo) {
        if (pila.empty()) {
            tabla.add(archivo);
            return tabla.indexOf(archivo);
        } else {
            tabla.add(pila.peek(), archivo);
            return pila.pop();
        }
    }

    protected void remove(int fd) {
        pila.push(fd);
    }

    protected OpenFile get(int fd) {
        if (indexOf(fd) < 0) {
            return tabla.get(fd);
        } else {
            return null;
        }
    }
    
    private int indexOf(int fd){
    	boolean encontrado = false;
    	int i;
    	
    	for (i = 0;!encontrado && i < pila.size();++i){
    		encontrado = (pila.get(i) == fd);
    	}
    	
    	return (encontrado) ? --i : -1;
    }
}
